package armazenador.so;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;

import armazenador.ip.IPBolao;
import armazenador.ip.IPUsuario;
import interfacedecomunicacao.LoginJaExistenteException;
import interfacedecomunicacao.UsuarioInexistenteException;
import jogoBolaoeArmazenador.rn.Bolao;
import jogoBolaoeArmazenador.rn.Usuario;


public class Armazenador {

	public Usuario autenticar(String login, char[] senha) throws UsuarioInexistenteException{
		return new IPUsuario().autenticar(login, senha);
	}

	public HashSet<Bolao> getBoloesAbertos(Usuario user) {
		return new IPBolao().getBoloesAbertos(user);
	}

	public HashSet<Bolao> recuperaHistorico(Usuario user) {
		return new IPBolao().recuperaHistorico(user);
	}

	public HashSet<Bolao> getBoloesDosQuaisParticipo(Usuario user) {
		return new IPBolao().getBoloesDosQuaisParticipo(user);
	}

	public void criaBolao(Bolao bolao, Usuario administrador) {
		new IPBolao().criaBolao(bolao, administrador);
	}

	public void persistirParticipacao(Bolao bolaoParaEntrar,
			Usuario novoParticipante, ArrayList<Integer> cotasEscolhidas) {
		new IPBolao().persistirParticipacao(bolaoParaEntrar, novoParticipante, cotasEscolhidas);
	}

	public boolean cadastraUsuario(Usuario novo) throws LoginJaExistenteException {
		return new IPUsuario().cadastraUsuario(novo);
	}

	public void armazenarResultado(Bolao bolao, HashSet<Integer> resultado) {
		
		String stringResultado = "";
		Iterator<Integer> i = resultado.iterator();
		while(i.hasNext()){
			stringResultado += i.next().toString() + ", ";
		}
		stringResultado = stringResultado.substring(0, stringResultado.length() - 2);
		
		new IPBolao().armazenarResultado(bolao, stringResultado);
	}
	
}
